namespace ClassyBlog.Infrastructure
{
    using System;

    public interface IServiceContainer : IDisposable
    {
        object Resolve(Type serviceType);

        IServiceContainer RegisterAsTransient<TService>(
            Func<IServiceContainer, TService> factory);

        IServiceContainer RegisterAsSingleton<TService>(
            Func<IServiceContainer, TService> factory);
    }
}